<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<script type="text/javascript">
    // 创建一个Person类
    class Person {
        //构造器方法
        constructor(name, age) {
            //构造器中的this是谁?—类的实例对象
            this.name = name
            this.age = age
            this.school = '尚硅谷'
        }

        //一般方法
        speak() {
            //speak方法放在了哪里？—类的原型对象上，供实例使用
            //通过Person实例调用speak时，speak中的this就是Person实例
            console.log(`我叫${this.name}，我年龄是${this.age}`)
        }
    }

    //创建一个Student类，继承于Person类
    class Student extends Person {
        constructor(name, age, grade) {
            super(name, age);
            this.grade = grade
        }

        //重写从父类继承过来的方法
        speak() {
            console.log(`我叫${this.name}，我年龄是${this.age}，我读的是${this.grade}年级`)
        }

        study() {
            //study方法放在了哪里?—类的原型对象上，供实例使用
            //通过student实例调用study时，study中的this就是Student实例
            console.log('我很努力的学习')
        }
    }

    //
    // const s1 = new Student('小张', 15, '高一')
    // console.log(s1)
    // s1.speak()
    // s1.study()

    class Car {
        constructor(name, price) {
            this.name = name
            this.price = price
        }

        a = 1
    }

    const c1 = new Car('奔驰c63', 199)
    const c2 = new Car('宝马', 299)
    console.log(c1)
    console.log(c2)
</script>
</body>
</html>